N2O AF calcs v1, with polarization dependence

18/05/24

Version with polarization dependence.

22/03/24

Alignment frame calcs preliminary:

Note all plots are interactive, mouse-over for data points, and use toolbars for zoom/selection, and widgets for browsing data types (where applicable).

For general methods: https://epsproc.readthedocs.io/en/dev/demos/ePSproc_class_demo_161020.html

In [1]:
# Quick hack to override default HTML template
# NOT required in some JLab versions.
# https://stackoverflow.com/a/63777508
# https://stackoverflow.com/questions/21971449/how-do-i-increase-the-cell-width-of-the-jupyter-ipython-notebook-in-my-browser
from IPython.core.display import display, HTML
display(HTML("<style>.container { width:100% !important; }</style>"))

Load alignment data

Now with ADM class.

In [2]:
from epsproc.classes.alignment import ADM
from pathlib import Path

dataPath = Path('~/ePS/N2O/alignment/Wigner D polyatomic normalized')
ADMtype = '.txt'

ADMin = ADM(fileBase=dataPath.expanduser(), ext = ADMtype)

ADMin.loadData(keyType='setADMsT', normType='wignerDpoly')
* sparse not found, sparse matrix forms not available. 
* natsort not found, some sorting functions not available. 
* Setting plotter defaults with epsproc.basicPlotters.setPlotters(). Run directly to modify, or change options in local env.
* Set Holoviews with bokeh.
* pyevtk not found, VTK export not available. 
Scanning /home/paul/ePS/N2O/alignment/Wigner D polyatomic normalized for ePS jobs.
Found ePS output files in subdirs: [PosixPath('/home/paul/ePS/N2O/alignment/Wigner D polyatomic normalized/A200'), PosixPath('/home/paul/ePS/N2O/alignment/Wigner D polyatomic normalized/A400'), PosixPath('/home/paul/ePS/N2O/alignment/Wigner D polyatomic normalized/A600'), PosixPath('/home/paul/ePS/N2O/alignment/Wigner D polyatomic normalized/A800')]

*** Scanning dir
/home/paul/ePS/N2O/alignment/Wigner D polyatomic normalized/A200
Found 6 .txt file(s)


*** Scanning dir
/home/paul/ePS/N2O/alignment/Wigner D polyatomic normalized/A400
Found 6 .txt file(s)


*** Scanning dir
/home/paul/ePS/N2O/alignment/Wigner D polyatomic normalized/A600
Found 6 .txt file(s)


*** Scanning dir
/home/paul/ePS/N2O/alignment/Wigner D polyatomic normalized/A800
Found 6 .txt file(s)

Set self.norm from self.norms['wignerDpoly'].
Found t-index /home/paul/ePS/N2O/alignment/time.txt
Files from self.fileDict read OK, outputs: self.dataDict and self.data.
In [3]:
# import epsproc as ep

# ep.setADMs
In [4]:
ADMin.plot(width=1000)
# ADMin.plot(xlim=(30,50), width=800)  # Auto-stack plus pass args & zoom in on specific region (note slider will reset region with interactive zoom)

Load matrix elements

In [5]:
# Plotters
# from epsproc.plot import hvPlotters

# Multijob class dev code
from epsproc.classes.multiJob import ePSmultiJob

import warnings
# warnings.filterwarnings('once')   # Skip repeated numpy deprecation warnings in current build (xr15 env)
warnings.filterwarnings('ignore')   # Skip repeated numpy deprecation warnings in current build (xr15 env)
In [6]:
# # Scan for subdirs, based on existing routine in getFiles()

# fileBase = Path('/home/paul/ePS/OCS/OCS_survey')  # Data dir on Stimpy

fileBase = Path('~/fock-mount/globalhome/eps/N2O/N2O_valence').expanduser() # Data dir on Jake
In [7]:
# TODO: fix orb label here, currently relies on (different) fixed format

data = ePSmultiJob(fileBase, verbose = 0)

data.scanFiles()
# data.jobsSummary()
*** Warning: Missing records, expected 32, found 24.
*** Warning: Found 8 blank sets of matrix elements, symmetries ['A2']
*** Warning: Missing records, expected 32, found 24.
*** Warning: Found 8 blank sets of matrix elements, symmetries ['A2']
*** Warning: Missing records, expected 32, found 24.
*** Warning: Found 8 blank sets of matrix elements, symmetries ['A2']
*** Warning: Missing records, expected 32, found 24.
*** Warning: Found 8 blank sets of matrix elements, symmetries ['A2']
*** Warning: Missing records, expected 32, found 24.
*** Warning: Found 8 blank sets of matrix elements, symmetries ['A2']
*** Warning: Missing records, expected 32, found 24.
*** Warning: Found 8 blank sets of matrix elements, symmetries ['A2']
*** Warning: Missing records, expected 32, found 24.
*** Warning: Found 8 blank sets of matrix elements, symmetries ['A2']
*** Warning: Missing records, expected 32, found 24.
*** Warning: Found 8 blank sets of matrix elements, symmetries ['A2']

Compute AF

Define field(s)

Using EfiledPol class, set various ellipticities and fields $(E_x,E_y)$. For MF calcs, compute for all polarization geometries corresponding to fields aligned along $(x,y,z)$ molecular axes.

Note default case assumes $z$-axis alignment, and $E_y$ for the field plots here is reoriented along the alignment axis in the AF calcs. See E-field pol docs for details and control over geometries.

18/05/24: debugging for alignment... in this case RX is not used in calcs, so need to ROTATE FIELD TERMS prior to PAD calcs.

In [8]:
from epsproc.efield.epol import EfieldPol
import numpy as np
import matplotlib.pyplot as plt

# Mulitple ellipticities and rotations
# For fields, set with format = [amplitude,azimuth (0,pi), ellipticity (-pi/4,pi/4)]
states = 3

# angles = np.linspace(0, np.pi, states)  # For range of angles
angles = np.zeros(states)  # no rotation

maxEll = 0.5  # Set max ellipticity to use (0 - 1)
ellipticities = np.linspace(0,maxEll*np.pi/4, states)   # Set for 0 - max ellipticity
ell = np.c_[np.ones(states),angles,ellipticities]
labels = (ellipticities/(np.pi/4) * 100).round(2)  # Set labels at %age ellipticity

# Set fields
Eell_multi = EfieldPol(ell=ell, labels = labels)

# Plot fields
Eell_multi.plot(figsize=(6,6), draw_arrow=False)
plt.legend(labels, loc='upper right')
Set field from ell.
[[1.         0.         0.        ]
 [1.         0.         0.19634954]
 [1.         0.         0.39269908]]
Out[8]:
<matplotlib.legend.Legend at 0x7fa07c443150>
In [9]:
# Optional - set field orientation for PAD calcs. If not set defaults to Ey>z-axis rotation.
# Eell_multi.setOrientation
Eell_multi.setOrientation()
Set pol state data to self.YLM and self.YLMrot, and orientations to self.RX (mapping=exy).
In [10]:
import epsproc as ep
ep.setPolGeoms
Out[10]:
<function epsproc.sphCalc.setPolGeoms(eulerAngs=None, quat=None, labels=None, vFlag=2, defaultMap='canonical')>
In [11]:
from epsproc.geomFunc.geomUtils import EfieldPolConfig
ep, p, RX, EPRX, EfieldPol = EfieldPolConfig(Eell_multi)
Set parameters to `self.epDict` and `self.epXR`.
Set geomCalc.EPR() results to `self.EPRX`.
In [12]:
ep
Out[12]:
array([[ 0.70710678+0.00000000e+00j, -0.70710678-0.00000000e+00j],
       [ 0.83146961-8.44698229e-18j, -0.55557023-8.44698229e-18j],
       [ 0.92387953-1.65693518e-17j, -0.38268343-1.65693518e-17j]])
In [13]:
p
Out[13]:
[-1, 1]
In [14]:
RX
Out[14]:
Show/Hide data repr Show/Hide attributes
xarray.DataArray
  • Euler: 3
  • quaternion(1, -0, 0, 0) ... quaternion(0.5, -0.5, 0.5, 0.5)
    array([quaternion(1, -0, 0, 0),
           quaternion(0.707106781186548, -0, 0, 0.707106781186547),
           quaternion(0.5, -0.5, 0.5, 0.5)], dtype=quaternion)
    • Euler
      (Euler)
      MultiIndex
      (P, T, C)
      array([(0.0, 0.0, 0.0), (1.5707963267948966, 0.0, 0.0),
             (1.5707963267948966, 1.5707963267948966, 0.0)], dtype=object)
    • P
      (Euler)
      float64
      0.0 1.571 1.571
      array([0.      , 1.570796, 1.570796])
    • T
      (Euler)
      float64
      0.0 0.0 1.571
      array([0.      , 0.      , 1.570796])
    • C
      (Euler)
      float64
      0.0 0.0 0.0
      array([0., 0., 0.])
    • Labels
      (Euler)
      <U32
      'x' 'y' 'z'
      array(['x', 'y', 'z'], dtype='<U32')
  • dataType :
    Euler
    mapping :
    exy
In [15]:
EPRX
Out[15]:
Show/Hide data repr Show/Hide attributes
xarray.DataArray
  • pol: 3
  • l: 1
  • lp: 1
  • P: 3
  • p: 2
  • R-p: 2
  • R: 3
  • (nan+nanj) (nan+nanj) ... (nan+nanj) (0.14644660940672624+0j)
    array([[[[[[[        nan           +nanj,
                         nan           +nanj,
                         nan           +nanj],
                [-0.28867513+0.00000000e+00j,
                         nan           +nanj,
                         nan           +nanj]],
    
               [[-0.28867513+0.00000000e+00j,
                         nan           +nanj,
                         nan           +nanj],
                [        nan           +nanj,
                         nan           +nanj,
                         nan           +nanj]]],
    
    
              [[[        nan           +nanj,
                         nan           +nanj,
                         nan           +nanj],
                [ 0.35355339-0.00000000e+00j,
                         nan           +nanj,
                         nan           +nanj]],
    
               [[-0.35355339+0.00000000e+00j,
                         nan           +nanj,
                         nan           +nanj],
                [        nan           +nanj,
                         nan           +nanj,
                         nan           +nanj]]],
    
    
              [[[        nan           +nanj,
                  0.5       +0.00000000e+00j,
                         nan           +nanj],
                [-0.20412415+0.00000000e+00j,
                         nan           +nanj,
                         nan           +nanj]],
    
               [[-0.20412415+0.00000000e+00j,
                         nan           +nanj,
                         nan           +nanj],
                [        nan           +nanj,
                         nan           +nanj,
                  0.5       +0.00000000e+00j]]]]]],
    
    
    
    
    
           [[[[[[        nan           +nanj,
                         nan           +nanj,
                         nan           +nanj],
                [-0.26670105+6.76440954e-18j,
                         nan           +nanj,
                         nan           +nanj]],
    
               [[-0.26670105-6.76440954e-18j,
                         nan           +nanj,
                         nan           +nanj],
                [        nan           +nanj,
                         nan           +nanj,
                         nan           +nanj]]],
    
    
              [[[        nan           +nanj,
                         nan           +nanj,
                         nan           +nanj],
                [ 0.32664074-8.28467590e-18j,
                         nan           +nanj,
                         nan           +nanj]],
    
               [[-0.32664074-8.28467590e-18j,
                         nan           +nanj,
                         nan           +nanj],
                [        nan           +nanj,
                         nan           +nanj,
                         nan           +nanj]]],
    
    
              [[[        nan           +nanj,
                  0.69134172+0.00000000e+00j,
                         nan           +nanj],
                [-0.18858612+4.78315986e-18j,
                         nan           +nanj,
                         nan           +nanj]],
    
               [[-0.18858612-4.78315986e-18j,
                         nan           +nanj,
                         nan           +nanj],
                [        nan           +nanj,
                         nan           +nanj,
                  0.30865828+0.00000000e+00j]]]]]],
    
    
    
    
    
           [[[[[[        nan           +nanj,
                         nan           +nanj,
                         nan           +nanj],
                [-0.20412415+1.24989991e-17j,
                         nan           +nanj,
                         nan           +nanj]],
    
               [[-0.20412415-1.24989991e-17j,
                         nan           +nanj,
                         nan           +nanj],
                [        nan           +nanj,
                         nan           +nanj,
                         nan           +nanj]]],
    
    
              [[[        nan           +nanj,
                         nan           +nanj,
                         nan           +nanj],
                [ 0.25      -1.53080850e-17j,
                         nan           +nanj,
                         nan           +nanj]],
    
               [[-0.25      -1.53080850e-17j,
                         nan           +nanj,
                         nan           +nanj],
                [        nan           +nanj,
                         nan           +nanj,
                         nan           +nanj]]],
    
    
              [[[        nan           +nanj,
                  0.85355339+0.00000000e+00j,
                         nan           +nanj],
                [-0.14433757+8.83812699e-18j,
                         nan           +nanj,
                         nan           +nanj]],
    
               [[-0.14433757-8.83812699e-18j,
                         nan           +nanj,
                         nan           +nanj],
                [        nan           +nanj,
                         nan           +nanj,
                  0.14644661+0.00000000e+00j]]]]]]])
    • pol
      (pol)
      float64
      0.0 25.0 50.0
      array([ 0., 25., 50.])
    • l
      (l)
      int64
      1
      array([1])
    • lp
      (lp)
      int64
      1
      array([1])
    • P
      (P)
      int64
      0 1 2
      array([0, 1, 2])
    • p
      (p)
      int64
      -1 1
      array([-1,  1])
    • R-p
      (R-p)
      int64
      -1 1
      array([-1,  1])
    • R
      (R)
      int64
      0 -2 2
      array([ 0, -2,  2])
  • dataType :
    EPR
    phaseCons :
    {'phaseConvention': 'S', 'genMatEcons': {'negm': False}, 'EPR': {'Rphase': True, 'negR': True, 'negRlabel': False, 'negRcoordSwap': True}, 'lambdaCons': {'negMup': True, 'negRp': True, 'phaseNegR': True, 'conjFlag': False, 'RpPhase': True}, 'betaCons': {'negM': False, 'mPhase': True}, 'mfblmCons': {'negRcoordSwap': True, 'negMcoordSwap': True, 'Mphase': True, 'negmCoordSwap': True, 'mPhase': True, 'mupPhase': True, 'BLMmPhase': False}, 'afblmCons': {'negM': False, 'negQ': True, 'negS': True, 'llpPhase': True}, 'lfblmCGCons': {'negmp': False, 'negM': True, 'negmup': False, 'negMP': False}}
In [16]:
Eell_multi.YLM
Out[16]:
Show/Hide data repr Show/Hide attributes
xarray.DataArray
'Epol'
  • BLM: 2
  • t: 3
  • (0.7071067811865475+0j) ... (-0.3826834323650898-1.656935179387676e-17j)
    array([[ 0.70710678+0.00000000e+00j,  0.83146961-8.44698229e-18j,
             0.92387953-1.65693518e-17j],
           [-0.70710678-0.00000000e+00j, -0.55557023-8.44698229e-18j,
            -0.38268343-1.65693518e-17j]])
    • BLM
      (BLM)
      MultiIndex
      (l, m)
      array([(1, -1), (1, 1)], dtype=object)
    • l
      (BLM)
      int64
      1 1
      array([1, 1])
    • m
      (BLM)
      int64
      -1 1
      array([-1,  1])
    • t
      (t)
      int64
      0 1 2
      units :
      Index
      array([0, 1, 2])
  • dataType :
    BLM
    long_name :
    Beta parameters
    units :
    arb
    harmonics :
    {'dtype': 'Complex harmonics', 'kind': 'complex', 'normType': 'ortho', 'csPhase': True}
In [26]:
%matplotlib inline
# Note some build envs may need mpl inline reset here!

# Plot light fields - input
# Eell_multi.plotSph(dataType='rot', facetDim=['t','Euler'])

from epsproc.sphPlot import sphFromBLMPlot
Itp, fig = sphFromBLMPlot(Eell_multi.YLMrot.sel(t=0).squeeze(drop=True), plotFlag = True,
                                    backend='mpl', facetDim='Euler') 
Using complex betas (from BLMX array).
*** WARNING: plot dataset has min value < 0, min = (-0.4886025119029198+0j). This may be unphysical and/or result in plotting issues.
Sph plots: 
Plotting with facetDims=Euler, pType=a with backend=mpl.
Data dims: ('Euler', 'Phi', 'Theta'), subplots on Euler
In [ ]:
Itp, fig = sphFromBLMPlot(Eell_multi.YLMrot.sel(t=0).squeeze(drop=True), plotFlag = True,
                                    backend='mpl', facetDim='Euler') 
In [20]:
Eell_multi.YLMrot
Out[20]:
Show/Hide data repr Show/Hide attributes
xarray.DataArray
  • t: 3
  • Euler: 3
  • BLM: 3
  • (0.7071067811865475+0j) ... (6.008483712196497e-17-0.27059805007309834j)
    array([[[ 7.07106781e-01+0.00000000e+00j,
              0.00000000e+00+0.00000000e+00j,
             -7.07106781e-01+0.00000000e+00j],
            [ 4.32978028e-17+7.07106781e-01j,
              0.00000000e+00+0.00000000e+00j,
             -1.57009246e-16+7.07106781e-01j],
            [ 3.69778549e-32+1.11022302e-16j,
             -1.00000000e+00+0.00000000e+00j,
             -3.69778549e-32+1.11022302e-16j]],
    
           [[ 8.31469612e-01-8.44698229e-18j,
              0.00000000e+00+0.00000000e+00j,
             -5.55570233e-01-8.44698229e-18j],
            [ 5.93598123e-17+8.31469612e-01j,
              0.00000000e+00+0.00000000e+00j,
             -1.31808355e-16+5.55570233e-01j],
            [ 4.75249489e-17+1.37949690e-01j,
             -9.80785280e-01+0.00000000e+00j,
              3.06309843e-17-1.37949690e-01j]],
    
           [[ 9.23879533e-01-1.65693518e-17j,
              0.00000000e+00+0.00000000e+00j,
             -3.82683432e-01-1.65693518e-17j],
            [ 7.31406574e-17+9.23879533e-01j,
              0.00000000e+00+0.00000000e+00j,
             -1.01542143e-16+3.82683432e-01j],
            [ 9.32235407e-17+2.70598050e-01j,
             -9.23879533e-01+0.00000000e+00j,
              6.00848371e-17-2.70598050e-01j]]])
    • t
      (t)
      int64
      0 1 2
      units :
      Index
      array([0, 1, 2])
    • Euler
      (Euler)
      MultiIndex
      (P, T, C)
      array([(0.0, 0.0, 0.0), (0.7853981633974483, 0.0, 0.7853981633974483),
             (1.5707963267948963, 1.5707963267948966, 0.0)], dtype=object)
    • P
      (Euler)
      float64
      0.0 0.7854 1.571
      array([0.      , 0.785398, 1.570796])
    • T
      (Euler)
      float64
      0.0 0.0 1.571
      array([0.      , 0.      , 1.570796])
    • C
      (Euler)
      float64
      0.0 0.7854 0.0
      array([0.      , 0.785398, 0.      ])
    • Labels
      (Euler)
      <U32
      'x' 'y' 'z'
      array(['x', 'y', 'z'], dtype='<U32')
    • BLM
      (BLM)
      MultiIndex
      (l, m)
      array([(1, -1), (1, 0), (1, 1)], dtype=object)
    • l
      (BLM)
      int64
      1 1 1
      array([1, 1, 1])
    • m
      (BLM)
      int64
      -1 0 1
      array([-1,  0,  1])
  • dataType :
    BLM
    long_name :
    Beta parameters
    units :
    arb
    harmonics :
    {'dtype': 'Complex harmonics', 'kind': 'complex', 'normType': 'ortho', 'csPhase': True}
In [27]:
Eell_multi.EPRX
Out[27]:
Show/Hide data repr Show/Hide attributes
xarray.DataArray
  • pol: 3
  • QN: 8
  • (-0.28867513459481287+0j) ... (0.14644660940672624+0j)
    array([[-0.28867513+0.00000000e+00j, -0.28867513+0.00000000e+00j,
             0.35355339-0.00000000e+00j, -0.35355339+0.00000000e+00j,
             0.5       +0.00000000e+00j, -0.20412415+0.00000000e+00j,
            -0.20412415+0.00000000e+00j,  0.5       +0.00000000e+00j],
           [-0.26670105+6.76440954e-18j, -0.26670105-6.76440954e-18j,
             0.32664074-8.28467590e-18j, -0.32664074-8.28467590e-18j,
             0.69134172+0.00000000e+00j, -0.18858612+4.78315986e-18j,
            -0.18858612-4.78315986e-18j,  0.30865828+0.00000000e+00j],
           [-0.20412415+1.24989991e-17j, -0.20412415-1.24989991e-17j,
             0.25      -1.53080850e-17j, -0.25      -1.53080850e-17j,
             0.85355339+0.00000000e+00j, -0.14433757+8.83812699e-18j,
            -0.14433757-8.83812699e-18j,  0.14644661+0.00000000e+00j]])
    • QN
      (QN)
      MultiIndex
      (l, lp, P, p, R-p, R)
      array([(1, 1, 0, -1, 1, 0), (1, 1, 0, 1, -1, 0), (1, 1, 1, -1, 1, 0),
             (1, 1, 1, 1, -1, 0), (1, 1, 2, -1, -1, -2), (1, 1, 2, -1, 1, 0),
             (1, 1, 2, 1, -1, 0), (1, 1, 2, 1, 1, 2)], dtype=object)
    • l
      (QN)
      int64
      1 1 1 1 1 1 1 1
      array([1, 1, 1, 1, 1, 1, 1, 1])
    • lp
      (QN)
      int64
      1 1 1 1 1 1 1 1
      array([1, 1, 1, 1, 1, 1, 1, 1])
    • P
      (QN)
      int64
      0 0 1 1 2 2 2 2
      array([0, 0, 1, 1, 2, 2, 2, 2])
    • p
      (QN)
      int64
      -1 1 -1 1 -1 -1 1 1
      array([-1,  1, -1,  1, -1, -1,  1,  1])
    • R-p
      (QN)
      int64
      1 -1 1 -1 -1 1 -1 1
      array([ 1, -1,  1, -1, -1,  1, -1,  1])
    • R
      (QN)
      int64
      0 0 0 0 -2 0 0 2
      array([ 0,  0,  0,  0, -2,  0,  0,  2])
    • pol
      (pol)
      float64
      0.0 25.0 50.0
      array([ 0., 25., 50.])
  • dataType :
    EPR
    phaseCons :
    {'phaseConvention': 'S', 'genMatEcons': {'negm': False}, 'EPR': {'Rphase': True, 'negR': True, 'negRlabel': False, 'negRcoordSwap': True}, 'lambdaCons': {'negMup': True, 'negRp': True, 'phaseNegR': True, 'conjFlag': False, 'RpPhase': True}, 'betaCons': {'negM': False, 'mPhase': True}, 'mfblmCons': {'negRcoordSwap': True, 'negMcoordSwap': True, 'Mphase': True, 'negmCoordSwap': True, 'mPhase': True, 'mupPhase': True, 'BLMmPhase': False}, 'afblmCons': {'negM': False, 'negQ': True, 'negS': True, 'llpPhase': True}, 'lfblmCGCons': {'negmp': False, 'negM': True, 'negmup': False, 'negMP': False}}
In [28]:
from epsproc.sphCalc import setPolGeoms, setBLMs, TKQarrayRotX
TKQarrayRotX(EPRX, RX)
***TKQ dataType not recognized, skipping frame rotation.
Out[28]:
(None, None, None)
In [29]:
EPRX
Out[29]:
Show/Hide data repr Show/Hide attributes
xarray.DataArray
  • pol: 3
  • l: 1
  • lp: 1
  • P: 3
  • p: 2
  • R-p: 2
  • R: 3
  • (nan+nanj) (nan+nanj) ... (nan+nanj) (0.14644660940672624+0j)
    array([[[[[[[        nan           +nanj,
                         nan           +nanj,
                         nan           +nanj],
                [-0.28867513+0.00000000e+00j,
                         nan           +nanj,
                         nan           +nanj]],
    
               [[-0.28867513+0.00000000e+00j,
                         nan           +nanj,
                         nan           +nanj],
                [        nan           +nanj,
                         nan           +nanj,
                         nan           +nanj]]],
    
    
              [[[        nan           +nanj,
                         nan           +nanj,
                         nan           +nanj],
                [ 0.35355339-0.00000000e+00j,
                         nan           +nanj,
                         nan           +nanj]],
    
               [[-0.35355339+0.00000000e+00j,
                         nan           +nanj,
                         nan           +nanj],
                [        nan           +nanj,
                         nan           +nanj,
                         nan           +nanj]]],
    
    
              [[[        nan           +nanj,
                  0.5       +0.00000000e+00j,
                         nan           +nanj],
                [-0.20412415+0.00000000e+00j,
                         nan           +nanj,
                         nan           +nanj]],
    
               [[-0.20412415+0.00000000e+00j,
                         nan           +nanj,
                         nan           +nanj],
                [        nan           +nanj,
                         nan           +nanj,
                  0.5       +0.00000000e+00j]]]]]],
    
    
    
    
    
           [[[[[[        nan           +nanj,
                         nan           +nanj,
                         nan           +nanj],
                [-0.26670105+6.76440954e-18j,
                         nan           +nanj,
                         nan           +nanj]],
    
               [[-0.26670105-6.76440954e-18j,
                         nan           +nanj,
                         nan           +nanj],
                [        nan           +nanj,
                         nan           +nanj,
                         nan           +nanj]]],
    
    
              [[[        nan           +nanj,
                         nan           +nanj,
                         nan           +nanj],
                [ 0.32664074-8.28467590e-18j,
                         nan           +nanj,
                         nan           +nanj]],
    
               [[-0.32664074-8.28467590e-18j,
                         nan           +nanj,
                         nan           +nanj],
                [        nan           +nanj,
                         nan           +nanj,
                         nan           +nanj]]],
    
    
              [[[        nan           +nanj,
                  0.69134172+0.00000000e+00j,
                         nan           +nanj],
                [-0.18858612+4.78315986e-18j,
                         nan           +nanj,
                         nan           +nanj]],
    
               [[-0.18858612-4.78315986e-18j,
                         nan           +nanj,
                         nan           +nanj],
                [        nan           +nanj,
                         nan           +nanj,
                  0.30865828+0.00000000e+00j]]]]]],
    
    
    
    
    
           [[[[[[        nan           +nanj,
                         nan           +nanj,
                         nan           +nanj],
                [-0.20412415+1.24989991e-17j,
                         nan           +nanj,
                         nan           +nanj]],
    
               [[-0.20412415-1.24989991e-17j,
                         nan           +nanj,
                         nan           +nanj],
                [        nan           +nanj,
                         nan           +nanj,
                         nan           +nanj]]],
    
    
              [[[        nan           +nanj,
                         nan           +nanj,
                         nan           +nanj],
                [ 0.25      -1.53080850e-17j,
                         nan           +nanj,
                         nan           +nanj]],
    
               [[-0.25      -1.53080850e-17j,
                         nan           +nanj,
                         nan           +nanj],
                [        nan           +nanj,
                         nan           +nanj,
                         nan           +nanj]]],
    
    
              [[[        nan           +nanj,
                  0.85355339+0.00000000e+00j,
                         nan           +nanj],
                [-0.14433757+8.83812699e-18j,
                         nan           +nanj,
                         nan           +nanj]],
    
               [[-0.14433757-8.83812699e-18j,
                         nan           +nanj,
                         nan           +nanj],
                [        nan           +nanj,
                         nan           +nanj,
                  0.14644661+0.00000000e+00j]]]]]]])
    • pol
      (pol)
      float64
      0.0 25.0 50.0
      array([ 0., 25., 50.])
    • l
      (l)
      int64
      1
      array([1])
    • lp
      (lp)
      int64
      1
      array([1])
    • P
      (P)
      int64
      0 1 2
      array([0, 1, 2])
    • p
      (p)
      int64
      -1 1
      array([-1,  1])
    • R-p
      (R-p)
      int64
      -1 1
      array([-1,  1])
    • R
      (R)
      int64
      0 -2 2
      array([ 0, -2,  2])
  • dataType :
    EPR
    phaseCons :
    {'phaseConvention': 'S', 'genMatEcons': {'negm': False}, 'EPR': {'Rphase': True, 'negR': True, 'negRlabel': False, 'negRcoordSwap': True}, 'lambdaCons': {'negMup': True, 'negRp': True, 'phaseNegR': True, 'conjFlag': False, 'RpPhase': True}, 'betaCons': {'negM': False, 'mPhase': True}, 'mfblmCons': {'negRcoordSwap': True, 'negMcoordSwap': True, 'Mphase': True, 'negmCoordSwap': True, 'mPhase': True, 'mupPhase': True, 'BLMmPhase': False}, 'afblmCons': {'negM': False, 'negQ': True, 'negS': True, 'llpPhase': True}, 'lfblmCGCons': {'negmp': False, 'negM': True, 'negmup': False, 'negMP': False}}
In [ ]:
break

TO DO May 2024: E-FIELD ROTATION... calcs below seem to be for xpol case otherwise (XS show opposite alignment dependence to previous calcs)

In [31]:
Eell_multi.YLM
Out[31]:
Show/Hide data repr Show/Hide attributes
xarray.DataArray
'Epol'
  • BLM: 2
  • t: 3
  • (0.7071067811865475+0j) ... (-0.3826834323650898-1.656935179387676e-17j)
    array([[ 0.70710678+0.00000000e+00j,  0.83146961-8.44698229e-18j,
             0.92387953-1.65693518e-17j],
           [-0.70710678-0.00000000e+00j, -0.55557023-8.44698229e-18j,
            -0.38268343-1.65693518e-17j]])
    • BLM
      (BLM)
      MultiIndex
      (l, m)
      array([(1, -1), (1, 1)], dtype=object)
    • l
      (BLM)
      int64
      1 1
      array([1, 1])
    • m
      (BLM)
      int64
      -1 1
      array([-1,  1])
    • t
      (t)
      int64
      0 1 2
      units :
      Index
      array([0, 1, 2])
  • dataType :
    BLM
    long_name :
    Beta parameters
    units :
    arb
    harmonics :
    {'dtype': 'Complex harmonics', 'kind': 'complex', 'normType': 'ortho', 'csPhase': True}
In [32]:
Eell_multi.YLMrot
Out[32]:
Show/Hide data repr Show/Hide attributes
xarray.DataArray
  • t: 3
  • Euler: 3
  • BLM: 3
  • (0.7071067811865475+0j) ... (6.008483712196497e-17-0.27059805007309834j)
    array([[[ 7.07106781e-01+0.00000000e+00j,
              0.00000000e+00+0.00000000e+00j,
             -7.07106781e-01+0.00000000e+00j],
            [ 4.32978028e-17+7.07106781e-01j,
              0.00000000e+00+0.00000000e+00j,
             -1.57009246e-16+7.07106781e-01j],
            [ 3.69778549e-32+1.11022302e-16j,
             -1.00000000e+00+0.00000000e+00j,
             -3.69778549e-32+1.11022302e-16j]],
    
           [[ 8.31469612e-01-8.44698229e-18j,
              0.00000000e+00+0.00000000e+00j,
             -5.55570233e-01-8.44698229e-18j],
            [ 5.93598123e-17+8.31469612e-01j,
              0.00000000e+00+0.00000000e+00j,
             -1.31808355e-16+5.55570233e-01j],
            [ 4.75249489e-17+1.37949690e-01j,
             -9.80785280e-01+0.00000000e+00j,
              3.06309843e-17-1.37949690e-01j]],
    
           [[ 9.23879533e-01-1.65693518e-17j,
              0.00000000e+00+0.00000000e+00j,
             -3.82683432e-01-1.65693518e-17j],
            [ 7.31406574e-17+9.23879533e-01j,
              0.00000000e+00+0.00000000e+00j,
             -1.01542143e-16+3.82683432e-01j],
            [ 9.32235407e-17+2.70598050e-01j,
             -9.23879533e-01+0.00000000e+00j,
              6.00848371e-17-2.70598050e-01j]]])
    • t
      (t)
      int64
      0 1 2
      units :
      Index
      array([0, 1, 2])
    • Euler
      (Euler)
      MultiIndex
      (P, T, C)
      array([(0.0, 0.0, 0.0), (0.7853981633974483, 0.0, 0.7853981633974483),
             (1.5707963267948963, 1.5707963267948966, 0.0)], dtype=object)
    • P
      (Euler)
      float64
      0.0 0.7854 1.571
      array([0.      , 0.785398, 1.570796])
    • T
      (Euler)
      float64
      0.0 0.0 1.571
      array([0.      , 0.      , 1.570796])
    • C
      (Euler)
      float64
      0.0 0.7854 0.0
      array([0.      , 0.785398, 0.      ])
    • Labels
      (Euler)
      <U32
      'x' 'y' 'z'
      array(['x', 'y', 'z'], dtype='<U32')
    • BLM
      (BLM)
      MultiIndex
      (l, m)
      array([(1, -1), (1, 0), (1, 1)], dtype=object)
    • l
      (BLM)
      int64
      1 1 1
      array([1, 1, 1])
    • m
      (BLM)
      int64
      -1 0 1
      array([-1,  0,  1])
  • dataType :
    BLM
    long_name :
    Beta parameters
    units :
    arb
    harmonics :
    {'dtype': 'Complex harmonics', 'kind': 'complex', 'normType': 'ortho', 'csPhase': True}
In [43]:
Eell_multi.YLMrot.swap_dims({"Euler":"Labels"}).unstack('BLM').sel(Labels='z')
Out[43]:
Show/Hide data repr Show/Hide attributes
xarray.DataArray
  • t: 3
  • l: 1
  • m: 3
  • (3.697785493223493e-32+1.1102230246251565e-16j) ... (6.008483712196497e-17-0.27059805007309834j)
    array([[[ 3.69778549e-32+1.11022302e-16j,
             -1.00000000e+00+0.00000000e+00j,
             -3.69778549e-32+1.11022302e-16j]],
    
           [[ 4.75249489e-17+1.37949690e-01j,
             -9.80785280e-01+0.00000000e+00j,
              3.06309843e-17-1.37949690e-01j]],
    
           [[ 9.32235407e-17+2.70598050e-01j,
             -9.23879533e-01+0.00000000e+00j,
              6.00848371e-17-2.70598050e-01j]]])
    • t
      (t)
      int64
      0 1 2
      units :
      Index
      array([0, 1, 2])
    • Euler
      ()
      object
      (1.5707963267948963, 1.5707963267948966, 0.0)
      array((1.5707963267948963, 1.5707963267948966, 0.0), dtype=object)
    • Labels
      ()
      <U32
      'z'
      array('z', dtype='<U32')
    • l
      (l)
      int64
      1
      array([1])
    • m
      (m)
      int64
      -1 0 1
      array([-1,  0,  1])
  • dataType :
    BLM
    long_name :
    Beta parameters
    units :
    arb
    harmonics :
    {'dtype': 'Complex harmonics', 'kind': 'complex', 'normType': 'ortho', 'csPhase': True}
In [54]:
# Test EPRX setting from rotated case - currently missing...
from copy import deepcopy 
Etest = deepcopy(Eell_multi)

# Test replacing epDict with rotation (subselection)
subselection = Eell_multi.YLMrot.swap_dims({"Euler":"Labels"}).unstack('BLM').sel(Labels='z').squeeze()
Etest.epDict = {'ep':subselection.values,
                'p':subselection.m.values,
               'RX':Etest.RX}
Etest.epDict
Out[54]:
{'ep': array([[ 3.69778549e-32+1.11022302e-16j, -1.00000000e+00+0.00000000e+00j,
         -3.69778549e-32+1.11022302e-16j],
        [ 4.75249489e-17+1.37949690e-01j, -9.80785280e-01+0.00000000e+00j,
          3.06309843e-17-1.37949690e-01j],
        [ 9.32235407e-17+2.70598050e-01j, -9.23879533e-01+0.00000000e+00j,
          6.00848371e-17-2.70598050e-01j]]),
 'p': array([-1,  0,  1]),
 'RX': <xarray.DataArray (Euler: 3)>
 array([quaternion(1, -0, 0, 0),
        quaternion(0.707106781186548, -0, 0, 0.707106781186547),
        quaternion(0.5, -0.5, 0.5, 0.5)], dtype=quaternion)
 Coordinates:
   * Euler    (Euler) MultiIndex
   - P        (Euler) float64 0.0 1.571 1.571
   - T        (Euler) float64 0.0 0.0 1.571
   - C        (Euler) float64 0.0 0.0 0.0
     Labels   (Euler) <U32 'x' 'y' 'z'
 Attributes:
     dataType:  Euler
     mapping:   exy}
In [55]:
Etest.calcEPR()
Set geomCalc.EPR() results to `self.EPRX`.
In [56]:
Etest.epDict
Out[56]:
{'ep': array([[ 3.69778549e-32+1.11022302e-16j, -1.00000000e+00+0.00000000e+00j,
         -3.69778549e-32+1.11022302e-16j],
        [ 4.75249489e-17+1.37949690e-01j, -9.80785280e-01+0.00000000e+00j,
          3.06309843e-17-1.37949690e-01j],
        [ 9.32235407e-17+2.70598050e-01j, -9.23879533e-01+0.00000000e+00j,
          6.00848371e-17-2.70598050e-01j]]),
 'p': array([-1,  0,  1]),
 'RX': <xarray.DataArray (Euler: 3)>
 array([quaternion(1, -0, 0, 0),
        quaternion(0.707106781186548, -0, 0, 0.707106781186547),
        quaternion(0.5, -0.5, 0.5, 0.5)], dtype=quaternion)
 Coordinates:
   * Euler    (Euler) MultiIndex
   - P        (Euler) float64 0.0 1.571 1.571
   - T        (Euler) float64 0.0 0.0 1.571
   - C        (Euler) float64 0.0 0.0 0.0
     Labels   (Euler) <U32 'x' 'y' 'z'
 Attributes:
     dataType:  Euler
     mapping:   exy,
 'EPRX': <xarray.DataArray (pol: 3, l: 1, lp: 1, P: 3, p: 3, R-p: 3, R: 5)>
 array([[[[[[[            nan           +nanj,
                          nan           +nanj,
                          nan           +nanj,
                          nan           +nanj,
                          nan           +nanj],
             [            nan           +nanj,
                          nan           +nanj,
                          nan           +nanj,
                          nan           +nanj,
                          nan           +nanj],
             [            nan           +nanj,
                          nan           +nanj,
               7.11639150e-33-4.74046902e-48j,
                          nan           +nanj,
                          nan           +nanj]],
 
            [[            nan           +nanj,
                          nan           +nanj,
                          nan           +nanj,
                          nan           +nanj,
                          nan           +nanj],
             [            nan           +nanj,
                          nan           +nanj,
              -5.77350269e-01+0.00000000e+00j,
                          nan           +nanj,
                          nan           +nanj],
             [            nan           +nanj,
                          nan           +nanj,
                          nan           +nanj,
                          nan           +nanj,
                          nan           +nanj]],
 
            [[            nan           +nanj,
                          nan           +nanj,
               7.11639150e-33+4.74046902e-48j,
                          nan           +nanj,
                          nan           +nanj],
             [            nan           +nanj,
                          nan           +nanj,
                          nan           +nanj,
                          nan           +nanj,
                          nan           +nanj],
             [            nan           +nanj,
                          nan           +nanj,
                          nan           +nanj,
                          nan           +nanj,
                          nan           +nanj]]],
 
 
           [[[            nan           +nanj,
                          nan           +nanj,
                          nan           +nanj,
                          nan           +nanj,
                          nan           +nanj],
             [            nan           +nanj,
                          nan           +nanj,
                          nan           +nanj,
               2.61472920e-32+7.85046229e-17j,
                          nan           +nanj],
             [            nan           +nanj,
                          nan           +nanj,
              -8.71576399e-33+5.80586512e-48j,
                          nan           +nanj,
                          nan           +nanj]],
 
            [[            nan           +nanj,
                          nan           +nanj,
                          nan           +nanj,
              -2.61472920e-32+7.85046229e-17j,
                          nan           +nanj],
             [            nan           +nanj,
                          nan           +nanj,
                          nan           +nanj,
                          nan           +nanj,
                          nan           +nanj],
             [            nan           +nanj,
              -2.61472920e-32-7.85046229e-17j,
                          nan           +nanj,
                          nan           +nanj,
                          nan           +nanj]],
 
            [[            nan           +nanj,
                          nan           +nanj,
               8.71576399e-33+5.80586512e-48j,
                          nan           +nanj,
                          nan           +nanj],
             [            nan           +nanj,
               2.61472920e-32-7.85046229e-17j,
                          nan           +nanj,
                          nan           +nanj,
                          nan           +nanj],
             [            nan           +nanj,
                          nan           +nanj,
                          nan           +nanj,
                          nan           +nanj,
                          nan           +nanj]]],
 
 
           [[[            nan           +nanj,
                          nan           +nanj,
                          nan           +nanj,
                          nan           +nanj,
               1.23259516e-32+0.00000000e+00j],
             [            nan           +nanj,
                          nan           +nanj,
                          nan           +nanj,
              -2.61472920e-32-7.85046229e-17j,
                          nan           +nanj],
             [            nan           +nanj,
                          nan           +nanj,
               5.03204869e-33-3.35201779e-48j,
                          nan           +nanj,
                          nan           +nanj]],
 
            [[            nan           +nanj,
                          nan           +nanj,
                          nan           +nanj,
              -2.61472920e-32+7.85046229e-17j,
                          nan           +nanj],
             [            nan           +nanj,
                          nan           +nanj,
               8.16496581e-01+0.00000000e+00j,
                          nan           +nanj,
                          nan           +nanj],
             [            nan           +nanj,
               2.61472920e-32+7.85046229e-17j,
                          nan           +nanj,
                          nan           +nanj,
                          nan           +nanj]],
 
            [[            nan           +nanj,
                          nan           +nanj,
               5.03204869e-33+3.35201779e-48j,
                          nan           +nanj,
                          nan           +nanj],
             [            nan           +nanj,
               2.61472920e-32-7.85046229e-17j,
                          nan           +nanj,
                          nan           +nanj,
                          nan           +nanj],
             [ 1.23259516e-32+0.00000000e+00j,
                          nan           +nanj,
                          nan           +nanj,
                          nan           +nanj,
                          nan           +nanj]]]]]],
 
 
 
 
 
        [[[[[[            nan           +nanj,
                          nan           +nanj,
                          nan           +nanj,
                          nan           +nanj,
                          nan           +nanj],
             [            nan           +nanj,
                          nan           +nanj,
                          nan           +nanj,
                          nan           +nanj,
                          nan           +nanj],
             [            nan           +nanj,
                          nan           +nanj,
              -1.09870431e-02+6.22475200e-18j,
                          nan           +nanj,
                          nan           +nanj]],
 
            [[            nan           +nanj,
                          nan           +nanj,
                          nan           +nanj,
                          nan           +nanj,
                          nan           +nanj],
             [            nan           +nanj,
                          nan           +nanj,
              -5.55376183e-01+0.00000000e+00j,
                          nan           +nanj,
                          nan           +nanj],
             [            nan           +nanj,
                          nan           +nanj,
                          nan           +nanj,
                          nan           +nanj,
                          nan           +nanj]],
 
            [[            nan           +nanj,
                          nan           +nanj,
              -1.09870431e-02-6.22475200e-18j,
                          nan           +nanj,
                          nan           +nanj],
             [            nan           +nanj,
                          nan           +nanj,
                          nan           +nanj,
                          nan           +nanj,
                          nan           +nanj],
             [            nan           +nanj,
                          nan           +nanj,
                          nan           +nanj,
                          nan           +nanj,
                          nan           +nanj]]],
 
 
           [[[            nan           +nanj,
                          nan           +nanj,
                          nan           +nanj,
                          nan           +nanj,
                          nan           +nanj],
             [            nan           +nanj,
                          nan           +nanj,
                          nan           +nanj,
               3.29594989e-17+9.56708581e-02j,
                          nan           +nanj],
             [            nan           +nanj,
                          nan           +nanj,
               1.34563247e-02-7.62373309e-18j,
                          nan           +nanj,
                          nan           +nanj]],
 
            [[            nan           +nanj,
                          nan           +nanj,
                          nan           +nanj,
              -3.29594989e-17+9.56708581e-02j,
                          nan           +nanj],
             [            nan           +nanj,
                          nan           +nanj,
                          nan           +nanj,
                          nan           +nanj,
                          nan           +nanj],
             [            nan           +nanj,
               2.12431979e-17+9.56708581e-02j,
                          nan           +nanj,
                          nan           +nanj,
                          nan           +nanj]],
 
            [[            nan           +nanj,
                          nan           +nanj,
              -1.34563247e-02-7.62373309e-18j,
                          nan           +nanj,
                          nan           +nanj],
             [            nan           +nanj,
              -2.12431979e-17+9.56708581e-02j,
                          nan           +nanj,
                          nan           +nanj,
                          nan           +nanj],
             [            nan           +nanj,
                          nan           +nanj,
                          nan           +nanj,
                          nan           +nanj,
                          nan           +nanj]]],
 
 
           [[[            nan           +nanj,
                          nan           +nanj,
                          nan           +nanj,
                          nan           +nanj,
               1.90301169e-02+0.00000000e+00j],
             [            nan           +nanj,
                          nan           +nanj,
                          nan           +nanj,
              -3.29594989e-17-9.56708581e-02j,
                          nan           +nanj],
             [            nan           +nanj,
                          nan           +nanj,
              -7.76901268e-03+4.40156435e-18j,
                          nan           +nanj,
                          nan           +nanj]],
 
            [[            nan           +nanj,
                          nan           +nanj,
                          nan           +nanj,
              -3.29594989e-17+9.56708581e-02j,
                          nan           +nanj],
             [            nan           +nanj,
                          nan           +nanj,
               7.85420530e-01+0.00000000e+00j,
                          nan           +nanj,
                          nan           +nanj],
             [            nan           +nanj,
              -2.12431979e-17-9.56708581e-02j,
                          nan           +nanj,
                          nan           +nanj,
                          nan           +nanj]],
 
            [[            nan           +nanj,
                          nan           +nanj,
              -7.76901268e-03-4.40156435e-18j,
                          nan           +nanj,
                          nan           +nanj],
             [            nan           +nanj,
              -2.12431979e-17+9.56708581e-02j,
                          nan           +nanj,
                          nan           +nanj,
                          nan           +nanj],
             [ 1.90301169e-02+0.00000000e+00j,
                          nan           +nanj,
                          nan           +nanj,
                          nan           +nanj,
                          nan           +nanj]]]]]],
 
 
 
 
 
        [[[[[[            nan           +nanj,
                          nan           +nanj,
                          nan           +nanj,
                          nan           +nanj,
                          nan           +nanj],
             [            nan           +nanj,
                          nan           +nanj,
                          nan           +nanj,
                          nan           +nanj,
                          nan           +nanj],
             [            nan           +nanj,
                          nan           +nanj,
              -4.22754947e-02+2.39513460e-17j,
                          nan           +nanj,
                          nan           +nanj]],
 
            [[            nan           +nanj,
                          nan           +nanj,
                          nan           +nanj,
                          nan           +nanj,
                          nan           +nanj],
             [            nan           +nanj,
                          nan           +nanj,
              -4.92799280e-01+0.00000000e+00j,
                          nan           +nanj,
                          nan           +nanj],
             [            nan           +nanj,
                          nan           +nanj,
                          nan           +nanj,
                          nan           +nanj,
                          nan           +nanj]],
 
            [[            nan           +nanj,
                          nan           +nanj,
              -4.22754947e-02-2.39513460e-17j,
                          nan           +nanj,
                          nan           +nanj],
             [            nan           +nanj,
                          nan           +nanj,
                          nan           +nanj,
                          nan           +nanj,
                          nan           +nanj],
             [            nan           +nanj,
                          nan           +nanj,
                          nan           +nanj,
                          nan           +nanj,
                          nan           +nanj]]],
 
 
           [[[            nan           +nanj,
                          nan           +nanj,
                          nan           +nanj,
                          nan           +nanj,
                          nan           +nanj],
             [            nan           +nanj,
                          nan           +nanj,
                          nan           +nanj,
               6.09012129e-17+1.76776695e-01j,
                          nan           +nanj],
             [            nan           +nanj,
                          nan           +nanj,
               5.17766953e-02-2.93342881e-17j,
                          nan           +nanj,
                          nan           +nanj]],
 
            [[            nan           +nanj,
                          nan           +nanj,
                          nan           +nanj,
              -6.09012129e-17+1.76776695e-01j,
                          nan           +nanj],
             [            nan           +nanj,
                          nan           +nanj,
                          nan           +nanj,
                          nan           +nanj,
                          nan           +nanj],
             [            nan           +nanj,
               3.92523115e-17+1.76776695e-01j,
                          nan           +nanj,
                          nan           +nanj,
                          nan           +nanj]],
 
            [[            nan           +nanj,
                          nan           +nanj,
              -5.17766953e-02-2.93342881e-17j,
                          nan           +nanj,
                          nan           +nanj],
             [            nan           +nanj,
              -3.92523115e-17+1.76776695e-01j,
                          nan           +nanj,
                          nan           +nanj,
                          nan           +nanj],
             [            nan           +nanj,
                          nan           +nanj,
                          nan           +nanj,
                          nan           +nanj,
                          nan           +nanj]]],
 
 
           [[[            nan           +nanj,
                          nan           +nanj,
                          nan           +nanj,
                          nan           +nanj,
               7.32233047e-02+0.00000000e+00j],
             [            nan           +nanj,
                          nan           +nanj,
                          nan           +nanj,
              -6.09012129e-17-1.76776695e-01j,
                          nan           +nanj],
             [            nan           +nanj,
                          nan           +nanj,
              -2.98932890e-02+1.69361591e-17j,
                          nan           +nanj,
                          nan           +nanj]],
 
            [[            nan           +nanj,
                          nan           +nanj,
                          nan           +nanj,
              -6.09012129e-17+1.76776695e-01j,
                          nan           +nanj],
             [            nan           +nanj,
                          nan           +nanj,
               6.96923425e-01+0.00000000e+00j,
                          nan           +nanj,
                          nan           +nanj],
             [            nan           +nanj,
              -3.92523115e-17-1.76776695e-01j,
                          nan           +nanj,
                          nan           +nanj,
                          nan           +nanj]],
 
            [[            nan           +nanj,
                          nan           +nanj,
              -2.98932890e-02-1.69361591e-17j,
                          nan           +nanj,
                          nan           +nanj],
             [            nan           +nanj,
              -3.92523115e-17+1.76776695e-01j,
                          nan           +nanj,
                          nan           +nanj,
                          nan           +nanj],
             [ 7.32233047e-02+0.00000000e+00j,
                          nan           +nanj,
                          nan           +nanj,
                          nan           +nanj,
                          nan           +nanj]]]]]]])
 Coordinates:
   * pol      (pol) float64 0.0 25.0 50.0
   * l        (l) int64 1
   * lp       (lp) int64 1
   * P        (P) int64 0 1 2
   * p        (p) int64 -1 0 1
   * R-p      (R-p) int64 -1 0 1
   * R        (R) int64 2 1 0 -1 -2
 Attributes:
     dataType:   EPR
     phaseCons:  {'phaseConvention': 'S', 'genMatEcons': {'negm': False}, 'EPR...}
In [52]:
hasattr(Etest,'YLMrot')
Out[52]:
True
In [51]:
Etest.EPRX.unstack()
Out[51]:
Show/Hide data repr Show/Hide attributes
xarray.DataArray
  • pol: 3
  • l: 1
  • lp: 1
  • P: 3
  • p: 3
  • R-p: 3
  • R: 5
  • (nan+nanj) (nan+nanj) (nan+nanj) ... (nan+nanj) (nan+nanj) (nan+nanj)
    array([[[[[[[            nan           +nanj,
                             nan           +nanj,
                             nan           +nanj,
                             nan           +nanj,
                             nan           +nanj],
                [            nan           +nanj,
                             nan           +nanj,
                             nan           +nanj,
                             nan           +nanj,
                             nan           +nanj],
                [            nan           +nanj,
                             nan           +nanj,
                  7.11639150e-33-4.74046902e-48j,
                             nan           +nanj,
                             nan           +nanj]],
    
               [[            nan           +nanj,
                             nan           +nanj,
                             nan           +nanj,
                             nan           +nanj,
                             nan           +nanj],
                [            nan           +nanj,
                             nan           +nanj,
                 -5.77350269e-01+0.00000000e+00j,
                             nan           +nanj,
                             nan           +nanj],
                [            nan           +nanj,
                             nan           +nanj,
                             nan           +nanj,
                             nan           +nanj,
                             nan           +nanj]],
    
               [[            nan           +nanj,
                             nan           +nanj,
                  7.11639150e-33+4.74046902e-48j,
                             nan           +nanj,
                             nan           +nanj],
                [            nan           +nanj,
                             nan           +nanj,
                             nan           +nanj,
                             nan           +nanj,
                             nan           +nanj],
                [            nan           +nanj,
                             nan           +nanj,
                             nan           +nanj,
                             nan           +nanj,
                             nan           +nanj]]],
    
    
              [[[            nan           +nanj,
                             nan           +nanj,
                             nan           +nanj,
                             nan           +nanj,
                             nan           +nanj],
                [            nan           +nanj,
                             nan           +nanj,
                             nan           +nanj,
                  2.61472920e-32+7.85046229e-17j,
                             nan           +nanj],
                [            nan           +nanj,
                             nan           +nanj,
                 -8.71576399e-33+5.80586512e-48j,
                             nan           +nanj,
                             nan           +nanj]],
    
               [[            nan           +nanj,
                             nan           +nanj,
                             nan           +nanj,
                 -2.61472920e-32+7.85046229e-17j,
                             nan           +nanj],
                [            nan           +nanj,
                             nan           +nanj,
                             nan           +nanj,
                             nan           +nanj,
                             nan           +nanj],
                [            nan           +nanj,
                 -2.61472920e-32-7.85046229e-17j,
                             nan           +nanj,
                             nan           +nanj,
                             nan           +nanj]],
    
               [[            nan           +nanj,
                             nan           +nanj,
                  8.71576399e-33+5.80586512e-48j,
                             nan           +nanj,
                             nan           +nanj],
                [            nan           +nanj,
                  2.61472920e-32-7.85046229e-17j,
                             nan           +nanj,
                             nan           +nanj,
                             nan           +nanj],
                [            nan           +nanj,
                             nan           +nanj,
                             nan           +nanj,
                             nan           +nanj,
                             nan           +nanj]]],
    
    
              [[[            nan           +nanj,
                             nan           +nanj,
                             nan           +nanj,
                             nan           +nanj,
                  1.23259516e-32+0.00000000e+00j],
                [            nan           +nanj,
                             nan           +nanj,
                             nan           +nanj,
                 -2.61472920e-32-7.85046229e-17j,
                             nan           +nanj],
                [            nan           +nanj,
                             nan           +nanj,
                  5.03204869e-33-3.35201779e-48j,
                             nan           +nanj,
                             nan           +nanj]],
    
               [[            nan           +nanj,
                             nan           +nanj,
                             nan           +nanj,
                 -2.61472920e-32+7.85046229e-17j,
                             nan           +nanj],
                [            nan           +nanj,
                             nan           +nanj,
                  8.16496581e-01+0.00000000e+00j,
                             nan           +nanj,
                             nan           +nanj],
                [            nan           +nanj,
                  2.61472920e-32+7.85046229e-17j,
                             nan           +nanj,
                             nan           +nanj,
                             nan           +nanj]],
    
               [[            nan           +nanj,
                             nan           +nanj,
                  5.03204869e-33+3.35201779e-48j,
                             nan           +nanj,
                             nan           +nanj],
                [            nan           +nanj,
                  2.61472920e-32-7.85046229e-17j,
                             nan           +nanj,
                             nan           +nanj,
                             nan           +nanj],
                [ 1.23259516e-32+0.00000000e+00j,
                             nan           +nanj,
                             nan           +nanj,
                             nan           +nanj,
                             nan           +nanj]]]]]],
    
    
    
    
    
           [[[[[[            nan           +nanj,
                             nan           +nanj,
                             nan           +nanj,
                             nan           +nanj,
                             nan           +nanj],
                [            nan           +nanj,
                             nan           +nanj,
                             nan           +nanj,
                             nan           +nanj,
                             nan           +nanj],
                [            nan           +nanj,
                             nan           +nanj,
                 -1.09870431e-02+6.22475200e-18j,
                             nan           +nanj,
                             nan           +nanj]],
    
               [[            nan           +nanj,
                             nan           +nanj,
                             nan           +nanj,
                             nan           +nanj,
                             nan           +nanj],
                [            nan           +nanj,
                             nan           +nanj,
                 -5.55376183e-01+0.00000000e+00j,
                             nan           +nanj,
                             nan           +nanj],
                [            nan           +nanj,
                             nan           +nanj,
                             nan           +nanj,
                             nan           +nanj,
                             nan           +nanj]],
    
               [[            nan           +nanj,
                             nan           +nanj,
                 -1.09870431e-02-6.22475200e-18j,
                             nan           +nanj,
                             nan           +nanj],
                [            nan           +nanj,
                             nan           +nanj,
                             nan           +nanj,
                             nan           +nanj,
                             nan           +nanj],
                [            nan           +nanj,
                             nan           +nanj,
                             nan           +nanj,
                             nan           +nanj,
                             nan           +nanj]]],
    
    
              [[[            nan           +nanj,
                             nan           +nanj,
                             nan           +nanj,
                             nan           +nanj,
                             nan           +nanj],
                [            nan           +nanj,
                             nan           +nanj,
                             nan           +nanj,
                  3.29594989e-17+9.56708581e-02j,
                             nan           +nanj],
                [            nan           +nanj,
                             nan           +nanj,
                  1.34563247e-02-7.62373309e-18j,
                             nan           +nanj,
                             nan           +nanj]],
    
               [[            nan           +nanj,
                             nan           +nanj,
                             nan           +nanj,
                 -3.29594989e-17+9.56708581e-02j,
                             nan           +nanj],
                [            nan           +nanj,
                             nan           +nanj,
                             nan           +nanj,
                             nan           +nanj,
                             nan           +nanj],
                [            nan           +nanj,
                  2.12431979e-17+9.56708581e-02j,
                             nan           +nanj,
                             nan           +nanj,
                             nan           +nanj]],
    
               [[            nan           +nanj,
                             nan           +nanj,
                 -1.34563247e-02-7.62373309e-18j,
                             nan           +nanj,
                             nan           +nanj],
                [            nan           +nanj,
                 -2.12431979e-17+9.56708581e-02j,
                             nan           +nanj,
                             nan           +nanj,
                             nan           +nanj],
                [            nan           +nanj,
                             nan           +nanj,
                             nan           +nanj,
                             nan           +nanj,
                             nan           +nanj]]],
    
    
              [[[            nan           +nanj,
                             nan           +nanj,
                             nan           +nanj,
                             nan           +nanj,
                  1.90301169e-02+0.00000000e+00j],
                [            nan           +nanj,
                             nan           +nanj,
                             nan           +nanj,
                 -3.29594989e-17-9.56708581e-02j,
                             nan           +nanj],
                [            nan           +nanj,
                             nan           +nanj,
                 -7.76901268e-03+4.40156435e-18j,
                             nan           +nanj,
                             nan           +nanj]],
    
               [[            nan           +nanj,
                             nan           +nanj,
                             nan           +nanj,
                 -3.29594989e-17+9.56708581e-02j,
                             nan           +nanj],
                [            nan           +nanj,
                             nan           +nanj,
                  7.85420530e-01+0.00000000e+00j,
                             nan           +nanj,
                             nan           +nanj],
                [            nan           +nanj,
                 -2.12431979e-17-9.56708581e-02j,
                             nan           +nanj,
                             nan           +nanj,
                             nan           +nanj]],
    
               [[            nan           +nanj,
                             nan           +nanj,
                 -7.76901268e-03-4.40156435e-18j,
                             nan           +nanj,
                             nan           +nanj],
                [            nan           +nanj,
                 -2.12431979e-17+9.56708581e-02j,
                             nan           +nanj,
                             nan           +nanj,
                             nan           +nanj],
                [ 1.90301169e-02+0.00000000e+00j,
                             nan           +nanj,
                             nan           +nanj,
                             nan           +nanj,
                             nan           +nanj]]]]]],
    
    
    
    
    
           [[[[[[            nan           +nanj,
                             nan           +nanj,
                             nan           +nanj,
                             nan           +nanj,
                             nan           +nanj],
                [            nan           +nanj,
                             nan           +nanj,
                             nan           +nanj,
                             nan           +nanj,
                             nan           +nanj],
                [            nan           +nanj,
                             nan           +nanj,
                 -4.22754947e-02+2.39513460e-17j,
                             nan           +nanj,
                             nan           +nanj]],
    
               [[            nan           +nanj,
                             nan           +nanj,
                             nan           +nanj,
                             nan           +nanj,
                             nan           +nanj],
                [            nan           +nanj,
                             nan           +nanj,
                 -4.92799280e-01+0.00000000e+00j,
                             nan           +nanj,
                             nan           +nanj],
                [            nan           +nanj,
                             nan           +nanj,
                             nan           +nanj,
                             nan           +nanj,
                             nan           +nanj]],
    
               [[            nan           +nanj,
                             nan           +nanj,
                 -4.22754947e-02-2.39513460e-17j,
                             nan           +nanj,
                             nan           +nanj],
                [            nan           +nanj,
                             nan           +nanj,
                             nan           +nanj,
                             nan           +nanj,
                             nan           +nanj],
                [            nan           +nanj,
                             nan           +nanj,
                             nan           +nanj,
                             nan           +nanj,
                             nan           +nanj]]],
    
    
              [[[            nan           +nanj,
                             nan           +nanj,
                             nan           +nanj,
                             nan           +nanj,
                             nan           +nanj],
                [            nan           +nanj,
                             nan           +nanj,
                             nan           +nanj,
                  6.09012129e-17+1.76776695e-01j,
                             nan           +nanj],
                [            nan           +nanj,
                             nan           +nanj,
                  5.17766953e-02-2.93342881e-17j,
                             nan           +nanj,
                             nan           +nanj]],
    
               [[            nan           +nanj,
                             nan           +nanj,
                             nan           +nanj,
                 -6.09012129e-17+1.76776695e-01j,
                             nan           +nanj],
                [            nan           +nanj,
                             nan           +nanj,
                             nan           +nanj,
                             nan           +nanj,
                             nan           +nanj],
                [            nan           +nanj,
                  3.92523115e-17+1.76776695e-01j,
                             nan           +nanj,
                             nan           +nanj,
                             nan           +nanj]],
    
               [[            nan           +nanj,
                             nan           +nanj,
                 -5.17766953e-02-2.93342881e-17j,
                             nan           +nanj,
                             nan           +nanj],
                [            nan           +nanj,
                 -3.92523115e-17+1.76776695e-01j,
                             nan           +nanj,
                             nan           +nanj,
                             nan           +nanj],
                [            nan           +nanj,
                             nan           +nanj,
                             nan           +nanj,
                             nan           +nanj,
                             nan           +nanj]]],
    
    
              [[[            nan           +nanj,
                             nan           +nanj,
                             nan           +nanj,
                             nan           +nanj,
                  7.32233047e-02+0.00000000e+00j],
                [            nan           +nanj,
                             nan           +nanj,
                             nan           +nanj,
                 -6.09012129e-17-1.76776695e-01j,
                             nan           +nanj],
                [            nan           +nanj,
                             nan           +nanj,
                 -2.98932890e-02+1.69361591e-17j,
                             nan           +nanj,
                             nan           +nanj]],
    
               [[            nan           +nanj,
                             nan           +nanj,
                             nan           +nanj,
                 -6.09012129e-17+1.76776695e-01j,
                             nan           +nanj],
                [            nan           +nanj,
                             nan           +nanj,
                  6.96923425e-01+0.00000000e+00j,
                             nan           +nanj,
                             nan           +nanj],
                [            nan           +nanj,
                 -3.92523115e-17-1.76776695e-01j,
                             nan           +nanj,
                             nan           +nanj,
                             nan           +nanj]],
    
               [[            nan           +nanj,
                             nan           +nanj,
                 -2.98932890e-02-1.69361591e-17j,
                             nan           +nanj,
                             nan           +nanj],
                [            nan           +nanj,
                 -3.92523115e-17+1.76776695e-01j,
                             nan           +nanj,
                             nan           +nanj,
                             nan           +nanj],
                [ 7.32233047e-02+0.00000000e+00j,
                             nan           +nanj,
                             nan           +nanj,
                             nan           +nanj,
                             nan           +nanj]]]]]]])
    • pol
      (pol)
      float64
      0.0 25.0 50.0
      array([ 0., 25., 50.])
    • l
      (l)
      int64
      1
      array([1])
    • lp
      (lp)
      int64
      1
      array([1])
    • P
      (P)
      int64
      0 1 2
      array([0, 1, 2])
    • p
      (p)
      int64
      -1 0 1
      array([-1,  0,  1])
    • R-p
      (R-p)
      int64
      -1 0 1
      array([-1,  0,  1])
    • R
      (R)
      int64
      2 1 0 -1 -2
      array([ 2,  1,  0, -1, -2])
  • dataType :
    EPR
    phaseCons :
    {'phaseConvention': 'S', 'genMatEcons': {'negm': False}, 'EPR': {'Rphase': True, 'negR': True, 'negRlabel': False, 'negRcoordSwap': True}, 'lambdaCons': {'negMup': True, 'negRp': True, 'phaseNegR': True, 'conjFlag': False, 'RpPhase': True}, 'betaCons': {'negM': False, 'mPhase': True}, 'mfblmCons': {'negRcoordSwap': True, 'negMcoordSwap': True, 'Mphase': True, 'negmCoordSwap': True, 'mPhase': True, 'mupPhase': True, 'BLMmPhase': False}, 'afblmCons': {'negM': False, 'negQ': True, 'negS': True, 'llpPhase': True}, 'lfblmCGCons': {'negmp': False, 'negM': True, 'negmup': False, 'negMP': False}}
In [30]:
Eell_multi.epDict
Out[30]:
{'ep': array([[ 0.70710678+0.00000000e+00j, -0.70710678-0.00000000e+00j],
        [ 0.83146961-8.44698229e-18j, -0.55557023-8.44698229e-18j],
        [ 0.92387953-1.65693518e-17j, -0.38268343-1.65693518e-17j]]),
 'p': [-1, 1],
 'RX': <xarray.DataArray (Euler: 3)>
 array([quaternion(1, -0, 0, 0),
        quaternion(0.707106781186548, -0, 0, 0.707106781186547),
        quaternion(0.5, -0.5, 0.5, 0.5)], dtype=quaternion)
 Coordinates:
   * Euler    (Euler) MultiIndex
   - P        (Euler) float64 0.0 1.571 1.571
   - T        (Euler) float64 0.0 0.0 1.571
   - C        (Euler) float64 0.0 0.0 0.0
     Labels   (Euler) <U32 'x' 'y' 'z'
 Attributes:
     dataType:  Euler
     mapping:   exy,
 'EPRX': <xarray.DataArray (pol: 3, l: 1, lp: 1, P: 3, p: 2, R-p: 2, R: 3)>
 array([[[[[[[        nan           +nanj,
                      nan           +nanj,
                      nan           +nanj],
             [-0.28867513+0.00000000e+00j,
                      nan           +nanj,
                      nan           +nanj]],
 
            [[-0.28867513+0.00000000e+00j,
                      nan           +nanj,
                      nan           +nanj],
             [        nan           +nanj,
                      nan           +nanj,
                      nan           +nanj]]],
 
 
           [[[        nan           +nanj,
                      nan           +nanj,
                      nan           +nanj],
             [ 0.35355339-0.00000000e+00j,
                      nan           +nanj,
                      nan           +nanj]],
 
            [[-0.35355339+0.00000000e+00j,
                      nan           +nanj,
                      nan           +nanj],
             [        nan           +nanj,
                      nan           +nanj,
                      nan           +nanj]]],
 
 
           [[[        nan           +nanj,
               0.5       +0.00000000e+00j,
                      nan           +nanj],
             [-0.20412415+0.00000000e+00j,
                      nan           +nanj,
                      nan           +nanj]],
 
            [[-0.20412415+0.00000000e+00j,
                      nan           +nanj,
                      nan           +nanj],
             [        nan           +nanj,
                      nan           +nanj,
               0.5       +0.00000000e+00j]]]]]],
 
 
 
 
 
        [[[[[[        nan           +nanj,
                      nan           +nanj,
                      nan           +nanj],
             [-0.26670105+6.76440954e-18j,
                      nan           +nanj,
                      nan           +nanj]],
 
            [[-0.26670105-6.76440954e-18j,
                      nan           +nanj,
                      nan           +nanj],
             [        nan           +nanj,
                      nan           +nanj,
                      nan           +nanj]]],
 
 
           [[[        nan           +nanj,
                      nan           +nanj,
                      nan           +nanj],
             [ 0.32664074-8.28467590e-18j,
                      nan           +nanj,
                      nan           +nanj]],
 
            [[-0.32664074-8.28467590e-18j,
                      nan           +nanj,
                      nan           +nanj],
             [        nan           +nanj,
                      nan           +nanj,
                      nan           +nanj]]],
 
 
           [[[        nan           +nanj,
               0.69134172+0.00000000e+00j,
                      nan           +nanj],
             [-0.18858612+4.78315986e-18j,
                      nan           +nanj,
                      nan           +nanj]],
 
            [[-0.18858612-4.78315986e-18j,
                      nan           +nanj,
                      nan           +nanj],
             [        nan           +nanj,
                      nan           +nanj,
               0.30865828+0.00000000e+00j]]]]]],
 
 
 
 
 
        [[[[[[        nan           +nanj,
                      nan           +nanj,
                      nan           +nanj],
             [-0.20412415+1.24989991e-17j,
                      nan           +nanj,
                      nan           +nanj]],
 
            [[-0.20412415-1.24989991e-17j,
                      nan           +nanj,
                      nan           +nanj],
             [        nan           +nanj,
                      nan           +nanj,
                      nan           +nanj]]],
 
 
           [[[        nan           +nanj,
                      nan           +nanj,
                      nan           +nanj],
             [ 0.25      -1.53080850e-17j,
                      nan           +nanj,
                      nan           +nanj]],
 
            [[-0.25      -1.53080850e-17j,
                      nan           +nanj,
                      nan           +nanj],
             [        nan           +nanj,
                      nan           +nanj,
                      nan           +nanj]]],
 
 
           [[[        nan           +nanj,
               0.85355339+0.00000000e+00j,
                      nan           +nanj],
             [-0.14433757+8.83812699e-18j,
                      nan           +nanj,
                      nan           +nanj]],
 
            [[-0.14433757-8.83812699e-18j,
                      nan           +nanj,
                      nan           +nanj],
             [        nan           +nanj,
                      nan           +nanj,
               0.14644661+0.00000000e+00j]]]]]]])
 Coordinates:
   * pol      (pol) float64 0.0 25.0 50.0
   * l        (l) int64 1
   * lp       (lp) int64 1
   * P        (P) int64 0 1 2
   * p        (p) int64 -1 1
   * R-p      (R-p) int64 -1 1
   * R        (R) int64 0 -2 2
 Attributes:
     dataType:   EPR
     phaseCons:  {'phaseConvention': 'S', 'genMatEcons': {'negm': False}, 'EPR...}

AF calc

In [57]:
# Set ADMs to use for calc - set for specific T and downsample

# Subselection, note temperature is set by dataKey here
temp = '10K'
trange = [38,42]
# ADMin.subsetADMs(dataKey = temp, trange=[35,45],tStep = 5)
ADMin.subsetADMs(dataKey = temp, trange=trange,tStep = 5)

# Plot subselection
ADMin.plot(keys='ADM')

# Set to main data structure for calcs
data.data['ADM'] = ADMin.data['ADM']
tpoints= data.data['ADM']['ADM'].t.size
Selecting 16 points
Set subset data to `self.data['ADM']['ADM']`
In [58]:
# Basic routine (no grouping)
thres = 1e-5
# data.AFBLM(AKQS = data.data['ADM']['ADM'].real, selDims = {'Type':'L'}, thres=1e-2) # OK for 41 t-points (x2 downsample), but missing some orbs and t-points in output!
# data.AFBLM(AKQS = data.data['ADM']['ADM'].real, selDims = {'Type':'L'}, thres=thres) # OK for 41 t-points (x2 downsample), still some missing regions for thres=1e-2
                                                                                       # mostly contiguous for thres = 1e-3,1e-4

# EfieldInput = Eell_multi
EfieldInput = Etest   # Testing frame rotation...
    
# With pol...
data.AFBLM(AKQS = data.data['ADM']['ADM'].real, EfieldPol = EfieldInput,
           selDims = {'Type':'L'}, thres=thres)   

# For thres=1e-3, 3 pol states, 41 t-points, requires ~ 50Gb RAM/10 mins. Some dicontinuities
# May need grouping for larger calcs.

# Thres = 1e-4, 3 pol states, 16 t-points, similar requirements

# Testing 22/05/24 - implementation of field frame rotation for EPRX

# Save full class with Pickle
# TODO: GENERAL DEBUG FOR ACCIDENTAL FUNCTION PASSING HERE!!!!
import pickle
outfile = f'N2O_AFBLM_polDep_{temp}_t{trange[0]}-{trange[1]}_tp{tpoints}_{thres}_frameRot_220524.pickle'
with open(outfile, 'wb') as handle:
#     data.data['ADM']['plots']['ADM']['pData'].attrs['pTypeDetails'] = []  # UGH, this breaks pickle unless removed.
    pickle.dump(data.data, handle, protocol=pickle.HIGHEST_PROTOCOL)
    print(f'Saved data.data with pickle, file: {outfile}')
Saved data.data with pickle, file: N2O_AFBLM_polDep_10K_t38-42_tp16_1e-05_frameRot_220524.pickle
In [ ]:
# # Load data
# thres = 1e-5
# # infile = f'N2O_AFBLM_{temp}_{thres}_220323.pickle'
# # infile = 'N2O_AFBLM_10K_0.0001_220323.pickle'
# infile = 'N2O_AFBLM_10K_1e-05_220323.pickle'

# import pickle
# with open(infile, 'rb') as handle:
#     dataIn = pickle.load(handle)
    
# data.data = dataIn

Plots

NOTE: interactive plots. Roll over plots for values and tool options. For heatmaps use the "box select" tool on the histogram at the side to change the colour mapping scale.

Remarks:

  • Some unphysical spikes in values <5eV, these are regions with small cross-sections, and are currently filtered out in these plots.
  • General patterns seem to be simlar to R-matrix results, as expected, although absolute Blm values seem larger...? Might be a normalisation difference here, TBC.

Cross-sections

In [ ]:
# v2 with pkg code...

# hvTest = data.BLMplot(backend='hv', xDim = 't', hvType='heatmap', addHist = False, addADMs = False, XS=True, renderPlot=False, returnPlot=True)
data.BLMplot(backend='hv', xDim = 't', hvType='heatmap', addHist = True, addADMs = False, XS=True, clim=(-1,2))
In [59]:
# Plot some results
# Example with post-plotter subselection for faster plotting...

# Create HV object, but don't plot
data.BLMplot(dataType='AFBLM', xDim='pol', thres = 1e-2, backend='hv', width=700,  ylim=(-1.5, 2.5), 
             renderPlot=False)

# Replot from Holoviews dataset with selectors
# Note this may need hv or hvPlotters to be loaded
from epsproc.plot import hvPlotters
xDim = 't'
# data.plots['BLMplot']['hvDS'].select(Eke=[1.1,10.1,20.1]).select(Orb='orb9_P').to(hvPlotters.hv.Curve, kdims=xDim).overlay(['l', 'm','pol'])
# data.plots['BLMplot']['hvDS'].select(Eke=[1.1,10.1,20.1]).to(hvPlotters.hv.Curve, kdims=xDim).overlay(['l', 'm'])
data.plots['BLMplot']['hvDS'].to(hvPlotters.hv.Curve, kdims=xDim).overlay(['l', 'm'])
BLMplot set data and plots to self.plots['BLMplot']
Out[59]:
In [ ]:
data.data['ADM']['ADM']
In [ ]:
# from epsproc.plot import hvPlotters
# hvPlotters.setPlotDefaults(fSize = [700,300], imgSize = 600)
data.BLMplot(backend='hv', xDim = 't', hvType='heatmap', addHist = True, addADMs = True, XS=False, 
             clim=(-1,2), cmap='vlag')
In [ ]:
data.plots['BLMplot']['XR'].attrs['harmonics']['dimList']
In [ ]:
def testKWARGS(**kwargs):
    if 'clim' in kwargs.keys():
        print(f"clim = {kwargs['clim']}")
    else:
        print("Nope")
        
testKWARGS(nothing='thing')
testKWARGS(clim='thing')
testKWARGS(clim=(-1,2))
In [ ]:
plotObj = data.BLMplot(backend='hv', xDim = 't', hvType='heatmap', addHist = True, addADMs = True, XS=False, 
             clim=(-1,2), cmap='vlag', returnPlot = True, renderPlot = False)

plotObj.hist(bin_range=(-2, 2))
# bin_range=(-5, 5)
In [ ]:
break

# hvTest.hist()
# hvTest.overlay(data.plots['BLMplot']['XR'].attrs['harmonics']['dimList']) #.opts(**kwargs)
In [ ]:
abs
In [ ]:
subset = data.plots['BLMplot']['XR'].copy()

# selDims = 
import epsproc as ep
ep.matEleSelector(subset.unstack(), thres=thres, inds = {'l':slice(2,20)}, drop=True)  #, dims = contiguousDims, sq = sqSelector)
# ep.clea

subset.where(subset.l>0, drop=True)
In [60]:
from epsproc.plot import hvPlotters
import numpy as np

# Set data - use existing plot routine but skip line outs (quite slow, replotted at end of notebook)
data.BLMplot(backend='hv', xDim = 't', renderPlot=False)

# Heatmaps for cross-sections
xrAF = data.plots['BLMplot']['XR'].copy()
Etype = 'Eke'

# Set opts to match sizes - should be able to link plots or set gridspace to handle this?
hvPlotters.setPlotDefaults(fSize = [750,300], imgSize = 600)
cmap = 'coolwarm'  # See http://holoviews.org/user_guide/Colormaps.html

# Get cross-sections
XS = np.abs(xrAF.XSrescaled)  # Should be in MB
XS.name = 'XS/MB'
hvXS = hvPlotters.hv.Dataset(XS.fillna(0))

# Plot heatmap + ADMs
(hvXS.to(hvPlotters.hv.HeatMap, kdims=['t',Etype]).opts(cmap=cmap).hist()  + data.data['ADM']['ADM'].unstack().squeeze().real.hvplot.line(x='t').overlay('K')).cols(1)
BLMplot set data and plots to self.plots['BLMplot']
WARNING:param.HeatMapPlot13975983: Due to internal constraints, when aspect and width/height is set, the bokeh backend uses those values as frame_width/frame_height instead. This ensures the aspect is respected, but means that the plot might be slightly larger than anticipated. Set the frame_width/frame_height explicitly to suppress this warning.
Out[60]:

AF-$\beta_{L,M}$

In [ ]:
# Heatmap for l=2,4,6
# NOTE - clipped cmap to physical values with clim=(-1,2), but some spikes.

# BLM = np.abs(xrAF.XSrescaled)  # Should be in MB
# XS.name = 'XS/MB'

# Filter out small XS regions?
xrAFfiltered = xrAF.where(np.abs(xrAF.XSrescaled) > 0.01)
hvDS = hvPlotters.hv.Dataset(xrAFfiltered.unstack('BLM').fillna(0).squeeze(drop=True))

# hvDS = hvPlotters.hv.Dataset(xrAF.unstack('BLM').fillna(0).squeeze(drop=True))

# Plot heatmap + ADMs
(hvDS.select(l=[2,4,6], m=0).to(hvPlotters.hv.HeatMap, kdims=['t',Etype]).opts(cmap=cmap, clim=(-0.5,1)).hist() + data.data['ADM']['ADM'].unstack().squeeze().real.hvplot.line(x='t').overlay('K')).cols(1)  #.overlay(['l','t']).layout('Orb').cols(1)
In [ ]:
# Line-outs
# Note this is quite slow to render
data.BLMplot(backend='hv', xDim = 't', ylim=(-1,2), filterXS=0.01)
In [ ]:
hvDS.select(l=[2,4,6], m=0)

Versions

Code

In [ ]:
# print(data.jobInfo['ePolyScat'][0])
# print('Run: ' + jobInfo['Starting'][0].split('at')[1])
In [ ]:
import scooby
scooby.Report(additional=['epsproc', 'xarray', 'jupyter', 'holoviews', 'pandas'])
In [ ]:
# Check current Git commit for local ePSproc version
!git -C {Path(ep.__file__).parent} branch
!git -C {Path(ep.__file__).parent} log --format="%H" -n 1
In [ ]:
# Check current remote commits
!git ls-remote --heads https://github.com/phockett/ePSproc

Notes

22/03/24

v1, quick run based on previous OCS code plus a few recent function updates.

TODO:

  • Testing with alternative polarization states.
  • More careful tests/checks in low-XS regions (currently just filter out, but see BLM spikes in a few cases without XS filter applied).
  • More careful comparison with R-matrix results.
  • AF-PAD plots, grids should work here...

Scratch

In [ ]:
break
In [ ]:
# Compute AFBLMs for aligned case
keys = data._keysCheck(None)
keys = list(set(keys) - set(['ADM']))


#*************** Throw everything in method - breaks for large datasets (RAM issues)
# data.AFBLM(keys = keys, AKQS = ADMs, selDims = {'Type':'L'})  # NOTE THIS USES independently set ADMs!

# data.AFBLM(keys = keys, AKQS = data.data['ADM']['ADM'].real, selDims = {'Type':'L'}, thres=1e-3) # OK for 61 t-points (x2 downsample)
# data.AFBLM(keys = keys, AKQS = data.data['ADM']['ADM'].real, selDims = {'Type':'L'}, thres=1e-3, thresDims = ['Eke','t'])   # NEED TO ADD DIM CHECKING TO thresDims
# data.AFBLM(keys = keys, AKQS = data.data['ADM']['ADM'].real, selDims = {'Type':'L'}, thres=1e-4)   # 1e-4 working OK for 30 t-points (x4 downsample)
# data.AFBLM(keys = keys, AKQS = data.data['ADM']['ADM'].real, selDims = {'Type':'L'}, thres=1e-5)   # 1e-5 working OK for 16 t-points (x8 downsample)
# data.AFBLM(keys = keys, AKQS = data.data['ADM']['ADM'].real, selDims = {'Type':'L'}, thres=1e-6)   # 1e-6 working OK for 16 t-points (x8 downsample)
# data.AFBLM(keys = keys, AKQS = data.data['ADM']['ADM'].real, selDims = {'Type':'L'}, thres=None)   # FAILS for 16 t-points (x8 downsample) at 60Gb RAM on Jake (Swap file size issue????)
                                                                                                   # OK for 8 t-points (x16 downsample) at ~55Gb RAM peak on Jake.
# thres=1e-4)  BREAKS KERNEL #, thresDims=['Eke','t'])  # TODO: currently thersDims must be in matE only for AFBLM routine.

# 21/07/22 version - above only gives L=2 max, missing L=4,6. But bumping threshold to 1e-4 kills calculation...
# data.AFBLM(keys = keys,  selDims = {'Type':'L'})  # Default case... sets/uses ADMs per key
# UPDATE: testing with scale factor for ADMs, and forcing to real - might be better?


#*********** Using grouping to avoid memory issues 
#        QUITE slow with current code, but more robust
#        TODO: make this better with basis set recycle (cf. fitting code)
#
import pickle

def calcAFBLMGroup(data,ADMs,keys,AFBLMdict):
    """Wrap for XR groupby"""
    
    # Class routine - returns to main datastruture
    data.AFBLM(keys = keys, AKQS = ADMs, selDims = {'Type':'L'}, thres=None)  #.map(standardize)
    
    # Copy to new structure & restack
#     keys = data._keysCheck(keys)

#     AFBLMdict = {}
    # Restack data to lists for merge
    for key in keys:
        AFBLMdict[key]['AFBLMlist'].append(data.data[key]['AFBLM'].copy())
        
    return AFBLMdict
        

AFBLMdict = {k:{'AFBLMlist':[]} for k in keys}
    
# tBins = np.arange(38,39.1,0.5)   # Test range
tBins = np.arange(trange[0], trange[1] + 0.1, 0.5)
# trange

import time

for item in data.data['ADM']['ADM'].groupby_bins("t", tBins):
    start = time.time()
    print(f'Calculating for group: {item[0]}, {item[1].t.size} t-points.')
    AFBLMdict = calcAFBLMGroup(data, item[1], keys, AFBLMdict)
    end = time.time()
    print(f'Delta: {end - start}s')

# Concat XR lists
for key in keys:
    AFBLMdict[key]['full'] = xr.concat(AFBLMdict[key]['AFBLMlist'],"t")
    AFBLMdict[key]['full'].name = f'{key}_AFBLM'
    
    # Push back to main class
    data.data[key]['AFBLM'] = AFBLMdict[key]['full'].copy()
    
    # Save object with Pickle
    with open(f'OCS_{key}_AFBLM_220722.pickle', 'wb') as handle:
        print(f'Saving {key} with pickle')
        pickle.dump(AFBLMdict[key]['full'], handle, protocol=pickle.HIGHEST_PROTOCOL)
    
# Save full class with Pickle
# NOW GIVING ERRORS ON RERUN (although worked previously), AttributeError: Can't pickle local object 'plotTypeSelector.<locals>.<lambda>'
# NOT SURE WHERE THIS IS COMING FROM AS YET
# UPDATE: IN data.data['ADM']['plots']['ADM']['pData'].attrs['pTypeDetails']
# TODO: GENERAL DEBUG FOR ACCIDENTAL FUNCTION PASSING HERE!!!!
# import pickle
with open(f'OCS_AFBLM_220722.pickle', 'wb') as handle:
    data.data['ADM']['plots']['ADM']['pData'].attrs['pTypeDetails'] = []  # UGH, this breaks pickle unless removed.
    pickle.dump(data, handle, protocol=pickle.HIGHEST_PROTOCOL)
    print(f'Saved data (full class) with pickle')